package server;

import java.io.Serializable;

/**
 * Questa classe definisce la creazione e i metodi utilizzati alla creazione di un dinosauro di tipo carnivoro, che ha come caratteristiche peculiari quelle di avere un raggio di movimento pari a 3 caselle e una forza uguale alla sua energia, moltiplicata per due ulteriormente moltiplicato per la sua dimensione.
 */
public class Carnivoro extends Dinosauro implements Serializable{

	private static final long serialVersionUID = 1L;

	/**
	 * Costruttore per inizializzare l'oggetto Dinosauro Carnivoro con la forza corretta, inizializzando i parametri nel modo consono.
	 * @param x Posizione di riga del dinosauro appena creato
	 * @param y Posizione di colonna del dinosauro appena creato.
	 * @param id Stringa identificatrice del dinosauro.
	 */
	public Carnivoro(int x, int y, String id) {
	
		super(x, y, id);
		setForza(this.getDimensione() * 2 * this.getEnergia());
		super.setTipo('c');
		super.setMovimento(3);
	}

	/**
	 * Override del metodo astratto della classe dinosauro.<br \>
	 * Nel caso la dimensione del dinosauro fosse gia' uguale a 5 (il massimo), essa non aumentera' ulteriormente.
	 */
	public void evolvi(){ 
	
		if ( this.getDimensione() == 5) //caso dimensione gia' massima
			return;
		this.setDimensione(this.getDimensione() +1);
		this.setEnergiaMax(this.getEnergiaMax()*this.getDimensione());
		setForza(this.getDimensione() * 2 * this.getEnergia());
	}
	
	/**
	 * Metodo usato per settare l'energia del dinosauro.
	 * @param Energia da sommare/sottrarre al dinosauro.
	 */
	public void setEnergia(int en){
		super.setEnergia(en);
		setForza(this.getDimensione() * 2 * this.getEnergia());
	}
}